#ifndef CDCOMMANDS_H
#define CDCOMMANDS_H

#include "src/common/be_command_system.h"
#include "../scene.h"

using namespace std;

class Cdcommands : public BeCommandSystem
{
	struct cmd2 : public cmd
	{
		void (Scene::*customMember)();
		void (Scene::*customMember_int)(int);
		void (Scene::*customMember_float)(float);
		void (Scene::*customMember_string)(const string&);
	};
  
	public:
		static Cdcommands* Instance();
		~Cdcommands();

		Scene*			scene;

		void registerCmd(string name, void (Scene::*pt2Func)());
		void registerCmd(string name, void (Scene::*pt2Func)(int));
		void registerCmd(string name, void (Scene::*pt2Func)(float));
		void registerCmd(string name, void (Scene::*pt2Func)(const string&));

	protected:
		Cdcommands();

	private:
		void execCmd(const string& name);
		void execCmd(const string& name, const string& str);
		void execCmd(const string& name, int ui);
		void execCmd(const string& name, float floatingpoint);
};



#endif
